package com.kunya.product.service.product;

import com.github.pagehelper.PageInfo;
import com.kunya.common.common.ServerResponse;
import com.kunya.product.po.Product;
import com.kunya.product.vo.ProductDetailVo;
import com.kunya.product.vo.ProductVo;

import java.io.IOException;
import java.util.List;

/**
 * @author zp
 * @Description: 商品service接口
 * @date 2018/5/30 9:59
 */
public interface IProductService {

    /**
     * 前台门户获取商品详情
     * @param productId
     * @param tablePrefix
     * @return
     */
    public ServerResponse<ProductDetailVo> getProductDetailVo(Long productId,String tablePrefix);

    /**
     * 前台门户根据关键词、商品分类搜索商品列表
     * @param keyword
     * @param categoryId
     * @param pageNum
     * @param pageSize
     * @param orderBy
     * @param tablePrefix
     * @return
     */
    public ServerResponse<PageInfo> getProductByKeywordCategory(String keyword, Long categoryId,int pageNum,int pageSize,String orderBy,String tablePrefix);

    /**
     * 新增商品方法
     * @param categoryIds
     * @param product
     * @param tablePrefix
     * @return
     */
    public ServerResponse<PageInfo> saveProduct(Long[] categoryIds, Product product, String tablePrefix);

    /**
     * 删除商品
     * @param productId
     * @param tablePerfix
     * @return
     */
    public ServerResponse removeProduct(Long productId,String tablePerfix) throws IOException;

    /**
     * 下架商品(逻辑删除)
     * @param productId
     * @param tablePerfix
     * @return
     */
    ServerResponse offlineProduct(Long productId,String tablePerfix);

    /**
     * 修改商品
     * @param productVo
     * @param tablePerfix
     * @return
     */
    ServerResponse updateProduct(ProductVo productVo,String tablePerfix);
}
